// ***************************************************************************************
// Copyright (c) 2023-2025 Peng Cheng Laboratory
// Copyright (c) 2023-2025 Institute of Computing Technology, Chinese Academy of Sciences
// Copyright (c) 2023-2025 Beijing Institute of Open Source Chip
//
// iEDA is licensed under Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan PSL v2.
// You may obtain a copy of Mulan PSL v2 at:
// http://license.coscl.org.cn/MulanPSL2
//
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
// MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
//
// See the Mulan PSL v2 for more details.
// ***************************************************************************************
/*
 * @Author: Shijian Chen  chenshj@pcl.ac.cn
 * @Date: 2023-02-01 16:37:41
 * @LastEditors: Shijian Chen  chenshj@pcl.ac.cn
 * @LastEditTime: 2023-02-09 11:51:33
 * @FilePath: /irefactor/src/operation/iPL/source/module/legalizer_refactor/database/PGPRow.hh
 * @Description: Row data structure
 * 
 * 
 */
#pragma once

#include <string>
#include <vector>

#include "Rectangle.hh"
#include "Orient.hh"
#include "Point.hh"

namespace ieda_contest {

class ContestSite
{
public:
    ContestSite() = delete;
    explicit ContestSite(std::string name);
    ContestSite(const ContestSite&) = delete;
    ContestSite(ContestSite&&) = delete;
    ~ContestSite() = default;

    ContestSite& operator=(const ContestSite&) = delete;
    ContestSite& operator=(ContestSite&&) = delete;

    // getter
    std::string get_name() const { return _name;}
    int32_t get_width() const { return _width;}
    int32_t get_height() const { return _height;}

    // setter
    void set_width(int32_t width) { _width = width;}
    void set_height(int32_t height) { _height = height;}

private:
    std::string _name;
    int32_t _width;
    int32_t _height;
};
inline ContestSite::ContestSite(std::string name): _name(name), _width(0), _height(0){}

};
